// pages/goods_detail/index.js
import regeneratorRuntime from '../../lib/runtime/runtime';
import {
  request
} from '../../request/index'
Page({

  /**
   * 页面的初始数据
   */
  data: {
    //获取到的商品数据
    goodsObj: {},
    isCollect: false
  },
  //商品对象
  goodsInfo: {},


  /**
   * 这里使用onshow函数二不是onload是考虑到在这个功能中页面加载比较频繁
   * 由于onshow函数中不可以用options传递参数数据。因此需要借助getCurrentPages方法拿到options
   */
  onShow: function() {
    let pages = getCurrentPages();
    let currentPage = pages[pages.length - 1];
    let options = currentPage.options;
    const {
      goods_id
    } = options;
    this.getGoodsDetail(goods_id);

  },
  async getGoodsDetail(goods_id) {

    const goodsObj = await request({
      url: '/goods/detail',
      data: {
        goods_id
      }
    })
    console.log(goodsObj)
    this.goodsInfo = goodsObj
    this.setData({
      goodsObj: {
        goods_name: goodsObj.goods_name,
        goods_price: goodsObj.goods_price,
        // iphone部分手机 不识别 webp图片格式 
        // 最好找到后台 让他进行修改 
        // 临时自己改 确保后台存在 1.webp => 1.jpg 
        goods_introduce: goodsObj.goods_introduce.replace(/\.webp/g, '.jpg'),
        pics: goodsObj.pics
      }
    })
  },
  //点击轮播图图片放大
  handleSwiperImage(e) {
    const urls = this.goodsInfo.pics.map(v => v.pics_mid)
    const current = e.currentTarget.dataset.url
    wx.previewImage({
      current,
      urls

    })
  },
  //加入购物车函数
  handleCartAdd() {
    //判断商品是否已经在购物车中
    let cart = wx.getStorageSync("cart") || []
    let index = cart.findIndex(v => v.goods_id === this.goodsInfo.goods_id)
    if (index === -1) {
      //不存在 第一次添加
      this.goodsInfo.num = 1
      this.goodsInfo.checked = true
      cart.push(this.goodsInfo)
    } else {

      cart[index].num++
    }
    wx.setStorageSync("cart", cart)
    wx.showToast({
      title: '加入购物车成功',

      mask: true

    });
  },
  //点击加入商品收藏
  handleGoodsCollect() {
    let isCollect = false;
    // 1 获取缓存中的商品收藏数组
    let collect = wx.getStorageSync("collect") || [];
    // 2 判断该商品是否被收藏过
    let index = collect.findIndex(v => v.goods_id === this.goodsInfo.goods_id);
    // 3 当index！=-1表示 已经收藏过 
    if (index !== -1) {
      // 能找到 已经收藏过了  在数组中删除该商品
      collect.splice(index, 1);
      isCollect = false;
      wx.showToast({
        title: '取消成功',
        icon: 'success',
        mask: true
      });

    } else {
      // 没有收藏过
      collect.push(this.goodsInfo);
      isCollect = true;
      wx.showToast({
        title: '收藏成功',
        icon: 'success',
        mask: true
      });
    }
    // 4 把数组存入到缓存中
    wx.setStorageSync("collect", collect);
    // 5 修改data中的属性  isCollect
    this.setData({
      isCollect
    })


  }

})